package Hash表.有效的字母异位词_242;
/*
给定两个字符串 s 和 t ，编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1: 输入: s = "anagram", t = "nagaram" 输出: true
示例 2: 输入: s = "rat", t = "car" 输出: false
说明: 你可以假设字符串只包含小写字母

思路：
    观察二者的共性就是只需要统计字母个数，而不需要关注字母顺序
    所以用数组模拟hash表，26个英文字母，如果存在某个字母就计数+1，然后在另一个字符串中减去，如果不是初始状态的话
    就说明对不上，那么就不相同
*/
public class Solution {
    public static void main(String[] args) {
        String s = "anagram";
        String t = "nagaram";
        System.out.println(isAnagram(s, t));
    }
    public static boolean isAnagram(String s, String t) {
        int[] record = new int[26];
        for(int i = 0; i < s.length(); i ++){
            record[s.charAt(i) - 'a'] ++;
        }
        for (int i = 0; i < t.length(); i ++){
            record[t.charAt(i) - 'a'] --;
        }
        for (int i = 0; i < 26; i ++){
            if (record[i] != 0){
                return false;
            }
        }
        return true;
    }
}
